package xin.marcher.module.seller.service;

import xin.marcher.module.seller.domain.dto.SellerInfoResultDTO;
import xin.marcher.module.seller.domain.request.SellerInfoRequest;
import xin.marcher.module.seller.domain.response.SellerInfoResponse;

import java.util.List;

/**
 *
 */
public interface SellerInfoService {

    /**
     * 新增卖家
     *
     * @param request
     * @return
     */
    SellerInfoResultDTO saveSellerInfo(SellerInfoRequest request);

    /**
     * 更新卖家信息
     *
     * @param request
     * @return
     */
    SellerInfoResultDTO updateSellerInfo(SellerInfoRequest request);

    /**
     * 查询卖家
     *
     * @param request
     * @return
     */
    List<SellerInfoResponse> querySellerInfo(SellerInfoRequest request);

    /**
     * 查询卖家RPC接口
     *
     * @param request
     * @return
     */
    List<SellerInfoResponse> querySellerInfoForRPC(SellerInfoRequest request);

    /**
     * 删除卖家
     *
     * @param sellerIdList
     * @return
     */
    SellerInfoResultDTO deleteSellerInfo(List<Integer> sellerIdList);

    /**
     * 卖家树信息初始化接口
     *
     * @param sellerType
     * @return
     */
    SellerInfoResultDTO initSellerTreeInfo(Integer sellerType);

    /**
     * 查询出所有的子卖家的sellerId
     *
     * @param request
     * @return
     */
    List<Long> getChildSellerIdList(SellerInfoRequest request);
}
